var server = require("./server/server");
var dao=require("./server/dao");
var crawler = require("./server/crawler");
var cronJob = require('cron').CronJob;
var utils = require('./server/utils');


var job1 = new cronJob('1 5 1 * * 1', function(){

    var time = utils.getDateStr();
    utils.setFetchTime(time);

    var EventProxy = require('eventproxy');
    var jobEp = new EventProxy();

    jobEp.on('rank_job',function () {
        crawler.loopHotKeyRankJob(jobEp);
    });

    jobEp.on('comm_sku_job',function () {
        dao.findHotKeySku(time,crawler.crawlComm,jobEp);
    });

    jobEp.on('comm_job',function () {
        crawler.loopCommentJob();
    });

    dao.findHotKey(time,crawler.crawlRank,jobEp);

});
job1.start();
console.log('1 1 14 * * 1');


//utils.setFetchTime(time);
//dao.findHotKey(time,crawler.crawlRank);
//crawler.loopHotKeyRankJob();


//dao.findHotKeySku(time,crawler.crawlComm);
//crawler.loopCommentJob();


//dao.findMbKeyword(crawler.crawlRank);

//启动服务，以提供给下面抓取存储数据
/*server.start();

//先把关键词任务放进redis，只需在一台机器上运行
var job = new cronJob('1 1 1 * * *', function(){
    dao.findKeyword(crawler.crawlRank);
    dao.findMbKeyword(crawler.crawlMbRank);
});
job.start();

//从redis里取任务关键词，开始任务
var job1 = new cronJob('1 1 2 * * *', function(){
    crawler.loopJob();
});
job1.start();

var job2 = new cronJob('1 30 1 * * *', function(){
    crawler.loopMbJob();
});
job2.start();*/


/**

 其中 f1 表示秒钟，f2 表示分钟，f3 表示小时，f4 表示一个月份中的第几日，f5 表示月 份，
 f6 表示一个星期中的第几天。各部分的取值含义如下（以 f1 部分为例，其他部分类 似）：

 当值为 * 时，表示每秒执行一次；
 当值为 a-b 时，表示从第 a 秒钟到第 b 秒钟这段时间内执行一次；
 当值为 n 时，表示每隔 n 秒钟执行一次；

 当值为 a-b/n 时，表示从第 a 秒钟到第 b 秒钟这段时间内每隔 n 秒钟执行一次。

 cron 模块的详细使用说明可以访问以下网址获取：
 https://npmjs.org/package/cron

 **/
